/*******************************************************************************
 *    系统名称   : 约汗乐动力接口/后台管理系统
 *    客户             : 约汗乐动力
 *    文件名        ： FreeMarkertUtil.java
 *              (C) Copyright 博智乐创 Corporation 2015
 *               All Rights Reserved.
 *              http://www.bozlc.com
 * *****************************************************************************
 *    注意： 本内容仅限于约汗乐动力软件公司内部使用，未经许可禁止转发
 ******************************************************************************/
package com.xiake.utils;

import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.net.URL;
import java.util.Locale;
import java.util.Map;

import javax.servlet.ServletContext;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
// TODO: Auto-generated Javadoc

/**
 * The Class FreeMarkertUtil.
 */
public class FreeMarkertUtil {
	
	/** The config. */
	private static Configuration config = new Configuration();

	/**
	 * Load template.
	 */
	public static void loadTemplate() {
		URL dir = ClassLoader.getSystemResource("temps"); // 获取装有FTL的目录
		File file = new File(dir.getFile());
		try {
			config.setDirectoryForTemplateLoading(file);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * Process template.
	 *
	 * @param templatePath the template path
	 * @param templateName the template name
	 * @param root the root
	 * @param out the out
	 */
	public static void processTemplate(String templatePath, String templateName, Map<String, Object> root, Writer out) {
		try {
			File file = new File(templatePath);
			config.setDirectoryForTemplateLoading(file);
			config.setObjectWrapper(new DefaultObjectWrapper());
			Template template = config.getTemplate(templateName, "UTF-8");
			template.process(root, out);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}

	}

	/**
	 * Inits the config.
	 *
	 * @param servletContext the servlet context
	 * @param templateDir the template dir
	 */
	public static void initConfig(ServletContext servletContext, String templateDir) {
		System.out.println("freemarker配置开始...");
		config.setLocale(Locale.CHINA);
		config.setDefaultEncoding("UTF-8");
		config.setEncoding(Locale.CHINA, "utf-8");
		config.setServletContextForTemplateLoading(servletContext, templateDir);
		config.setObjectWrapper(new DefaultObjectWrapper());
		System.out.println("freemarker配置结束");
	}
}
